import java.util.Arrays;

public class Fast {

    public static void main(String[] args) {
        In in = new In(args[0]);
        int N = in.readInt();
        Point[] points = new Point[N];
        StdDraw.setXscale(0, 32768);
        StdDraw.setYscale(0, 32768);
        for (int i = 0; i < N; i++) {
            points[i] = new Point(in.readInt(), in.readInt());
            points[i].draw();
        }
        Arrays.sort(points);

        for (int p = 0; p < N; p++) {
            final Point P = points[p];
            Arrays.sort(points, p + 1, N, P.SLOPE_ORDER);
            Point Q;
            int q0 = 0;
            for (int q = q0 = p + 1; q < N; q++) {
                Q = points[q];
                if (q0 == q || P.slopeTo(Q) != P.slopeTo(points[q0])) {
                    if (q - q0 >= 3) {
                        Arrays.sort(points, q0, q);
                        System.out.print(P);
                        for (int r = q0; r < q; r++) {
                            final Point R = points[r];
                            System.out.print(" -> " + R);
                        }
                        System.out.println();
                    }
                    q0 = q;
                }
                if (q == N-1 && P.slopeTo(Q) == P.slopeTo(points[q0])) {
                    if (N - q0 >= 3) {
                        Arrays.sort(points, q0, N);
                        System.out.print(P);
                        for (int r = q0; r < N; r++) {
                            final Point R = points[r];
                            System.out.print(" -> " + R);
                        }
                        System.out.println();
                    }
                }
            }
        }
    }

}
